Non-volatile memory devices such as Solid State Drives (SSDs) are finding new applications in consumer electronics. For example, they are replacing Hard Disk Drives (HDDs), which typically comprise rapidly rotating disks (platters). Non-volatile memories, sometimes referred to as ‘flash memories’ (for example, NAND and NOR flash devices), are used in media storage, cameras, mobile phones, mobile computers, laptop computers, USB flash drives, etc. Non-volatile memory provides a relatively reliable, compact, cost-effective, and easily accessible method of storing data when the power is off.
Flash memory controllers are used to manage the data stored in the non-volatile memory, and to act as an interface between a host and the non-volatile memory. A flash memory controller can include a Flash Translation Layer (FTL) that maps the host side logical addresses such as “logical block addresses (LBAs)” to the flash memory side “physical addresses” which correspond to physical locations in the flash memory. The mapping between the logical addresses and the physical addresses can change during operating of the system for various reasons including flash management. During operation, the FTL may maintain mapping tables that enable the translation in volatile memory, such as Dynamic Random Accessible Memory (DRAM), inside or accessible to the controller.
An optimized solid state drive can use a full logical to physical (L2P) map of the flash memory data. For large capacity drives, the full L2P map may use a large amount of DRAM (or other system memory) to keep track of the associated map table. The large amount of DRAM can be difficult to manage and may not be cost effective.